#include<iostream>
#include <sys/ipc.h>
#include <sys/shm.h>
#include<unistd.h>
#include<sys/types.h>
//这个文件复杂打开共享内存，并且往里面写数据

#define pathname "./318"
#define proyjid 123
const int gsize = 4096;
int main()
{
    key_t _key = ftok(pathname,proyjid);
    int id = shmget(_key,gsize,IPC_CREAT);  //这个操作可以说是打开一个创建好了的共享内存
    if(id < 0)
    std :: cerr << "shmget" << std :: endl;
    //此时需要建立虚拟地址空间和物理空间的练习
    char *start_mem = (char*)shmat(id,nullptr,0); //返回的是虚拟空间开头的地址 
    int index = 0;
    for(char c = 'A' ; c <= 'Z' ; c++,index ++)
    {
        //向共享内存写入数据
        start_mem[index] = c;
        sleep(1);
    }
    return 0;
}